package com.cysoft.third.echarts.component.calendar;

import lombok.Data;

/**
 * @author 玖零
 * @version v0.0.1
 * @project cysoft-third-echarts
 * @package com.cysoft.third.echarts.component.calendar
 * @date 2025/3/12 16:44
 * @desc
 */
@Data
public class Calendar {

    /**
     * 组件 ID。默认不指定，指定则可用于在 option 或者 API 中引用组件。
     */
    private String id;
    /**
     * 所有图形的 zlevel 值。zlevel 用于 Canvas 分层，不同 zlevel 值的图形会放置在不同的 Canvas 中，
     * Canvas 分层是一种常见的优化手段。zlevel 大的 Canvas 会放在 zlevel 小的 Canvas 的上面。
     */
    private Integer zlevel;
    /**
     * 组件的所有图形的 z 值。控制图形的前后顺序，z 值小的图形会被 z 值大的图形覆盖。
     * z 相比 zlevel 优先级更低，而且不会创建新的 Canvas，默认值为 2。
     */
    private Integer z = 2;
    /**
     * 日历组件离容器左侧的距离。值可以是具体像素值（如 20）、相对于容器高宽的百分比（如 '20%'），
     * 也可以是 'left', 'center', 'right'。如果为 'left', 'center', 'right'，组件会根据相应的位置自动对齐，默认值为 80。
     */
    private Object left = 80;
    /**
     * 日历组件离容器上侧的距离。值可以是具体像素值（如 20）、相对于容器高宽的百分比（如 '20%'），
     * 也可以是 'top', 'middle', 'bottom'。如果为 'top', 'middle', 'bottom'，组件会根据相应的位置自动对齐，默认值为 60。
     */
    private Object top = 60;
    /**
     * 日历组件离容器右侧的距离。值可以是具体像素值（如 20）、相对于容器高宽的百分比（如 '20%'），默认自适应。
     */
    private Object right = "auto";
    /**
     * 日历组件离容器下侧的距离。值可以是具体像素值（如 20）、相对于容器高宽的百分比（如 '20%'），默认自适应。
     */
    private Object bottom = "auto";
    /**
     * 日历坐标的整体宽度。注意：默认 cellSize 为 20，若设置了 width 的值，则 cellSize 中的宽度强制转为 auto，默认值为 auto。
     */
    private Object width = "auto";
    /**
     * 日历坐标的整体高度。注意：默认 cellSize 为 20，若设置了 height 的值，则 cellSize 中的高度强制转为 auto，默认值为 auto。
     */
    private Object height = "auto";
    /**
     * 日历坐标的范围，必填项，支持多种格式。可以是某一年（如 2017）、某个月（如 '2017-02'）、某个区间（如 ['2017-01-02', '2017-02-23']）。
     */
    private Object range;
    /**
     * 日历每格框的大小，可设置单值或数组，第一个元素是宽，第二个元素是高。支持设置自适应：auto，默认为高宽均为 20。
     */
    private Object cellSize = 20;
    /**
     * 日历坐标的布局朝向，可选值为 'horizontal'（水平）或 'vertical'（垂直），默认值为 'horizontal'。
     */
    private String orient = "horizontal";
    /**
     * 日历坐标分隔线的样式设置。
     */
    private CalendarSplitLine splitLine;
    /**
     * 日历格的样式设置。
     */
    private CalendarItemStyle itemStyle;
    /**
     * 日历坐标中星期轴的样式设置。
     */
    private DayLabel dayLabel;
    /**
     * 日历坐标中月份轴的样式设置。
     */
    private MonthLabel monthLabel;
    /**
     * 日历坐标中年的样式设置。
     */
    private YearLabel yearLabel;
    /**
     * 图形是否不响应和触发鼠标事件，默认为 false，即响应和触发鼠标事件。
     */
    private Boolean silent = false;
}
